import pymysql
import openpyxl

#导出学生表为Excel文件

# 创建工作簿对象
workbook = openpyxl.Workbook()
# 获得默认的工作表
sheet = workbook.active
# 修改工作表的标题
sheet.title = '学生基本信息'
# 给工作表添加表头
sheet.append(('学号', '姓名', '性别', '出生日期', '地址', '学院id',"学院名称"))
# 1. 创建连接（Connection）
conn = pymysql.connect(host='127.0.0.1', port=3306,
                       user='root', password='qwe123',
                       database='school', charset='utf8mb4')
try:
    # 2. 获取游标对象（Cursor）
    with conn.cursor() as cursor:
        # 3. 通过游标对象向数据库服务器发出SQL语句
        cursor.execute(
            f"select tb_student.*,tb_college.col_name from tb_student join tb_college on tb_student.col_id = tb_college.col_id",
        )
        row = cursor.fetchone()
        while row:
            # 将数据逐行写入工作表中
            sheet.append(row)
            row=cursor.fetchone()
    # 保存工作簿
    workbook.save('tb_student.xlsx')
except pymysql.MySQLError as err:
    # 4. 回滚事务
    conn.rollback()
    print(type(err), err)
finally:
    # 5. 关闭连接释放资源
    conn.close()